package com.psct.social;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;

import android.content.Context;

import com.psct.PSCTUtil;
import com.psct.social.SocialManager.OnBindListener;

/**
 *第三方认证账号抽象类
 * @author zjingchuan
 *
 */
public abstract class SocialAccount {
	/**
	 * 帐号类型
	 */
	public String type;
	/**
	 * 类型说明
	 */
	public String typeName;
	/**
	 * 是否已经绑定
	 */
	public boolean isBind=false;
	/**
	 * 表示图标的资源id
	 */
	public int ico;
	/**
	 * 微博昵称
	 */
	public String name;
	/**
	 * 头像图片资源路径
	 */
	public String iamge_file;
	/**
	 * 绑定后的回调接口
	 */
	protected OnBindListener listener;
	/**
	 * ���ʺ�
	 * @param context
	 * @param listener �����֮������Ļص��ӿڣ�����Ϊnull��
	 */
	public abstract void bind(Context context,OnBindListener listener);
	/**
	 * ����ʺ�
	 * 
	 */
	public abstract void unBind(Context context);
	/**
	 * ����һ��΢��
	 * @param context
	 * @param content �ı�����
	 * @param picPath ͼƬ������·�� ������ͼƬ����Ϊnull
	 */
	public abstract void sendMessage(Context context,String content,String picPath,SendResultListener listener);
	/**
	 * 处理认证成功后的个人信息
	 * 
	 * @param context
	 * @param name
	 * @param imageUrl
	 * @throws IOException
	 * @throws MalformedURLException
	 * @throws FileNotFoundException
	 */
	public void handlUsernfo(final Context context, String name, String imageUrl, String type)
			throws IOException, MalformedURLException, FileNotFoundException {
		String imagePath = PSCTUtil.getTempPath(context) + File.separator + type+"_head.png";
		File imageFile = new File(imagePath);
		URL url = new URL(imageUrl);
		InputStream in = url.openStream();
		OutputStream out = new FileOutputStream(imageFile);
		byte[] buffByte = new byte[1024];
		int i = -1;
		while ((i = in.read(buffByte)) != -1) {
			out.write(buffByte);
		}
		out.flush();
		out.close();
		in.close();
		SocialAccountKeeper.keepUserInfo(context, type,name,imagePath);
		if(listener!=null) {
			listener.onBind();
		}
	}
	
	/**
	 * 发送微博的结果回调接口
	 * @author zjingchuan
	 *
	 */
	public static interface SendResultListener{
		/**
		 * 发送成功
		 */
		void onSendOK();
		/**
		 * 发送失败
		 * @param msg 错误信息
		 */
		void onSendErr(String msg);
		/**
		 * 网络异常
		 */
		void onNetErr();
	}
}
